//
//  NetworkTool+status.swift
//  SinaMicroblog
//
//  Created by 原鹏飞 on 2017/4/12.
//  Copyright © 2017年 YuanPengFei. All rights reserved.
//

import UIKit

extension NetworkTool {
    
    /// 获取微博的首页数据
    ///
    /// - Parameters:
    ///   - sinceId: 返回比当前微博id大的微博数据
    ///   - maxId: 返回等于/小于当前微博id的微博数据
    ///   - callBack: 完成回调
    func requestStatus(sinceId: Int64 = 0, maxId: Int64 = 0, callBack: @escaping (Any?) -> ()) {
        let urlStr = "https://api.weibo.com/2/statuses/home_timeline.json"
        let parameters: [String: Any] = ["access_token": WBUserAccount.shared.access_token!, "since_id": sinceId, "max_id": maxId]
        
        self.get(urlStr, parameters: parameters, progress: nil, success: { (_, response) in
            //可选绑定1: response是一个可选的Any类型, 先弱转成字典, 如果结果是可选的字典, 再对该可选字典做可选绑定
            //可选绑定2: 从字典中取出字典statuses对应的值, 得到一个可选的Any类型, 再弱转得到一个可选的字典数组, 再对该字典数组做可选绑定
            if let response = response as? [String: Any],
                let statusArr = response["statuses"] as? [[String: Any]]{
                //此时statusArr是一个必选的字典数组, 先调用YYModel的方法将statusArr转成模型数组, 得到可选的NSArray, 再将NSArray弱转成 [WBStatusModel], 再做可选绑定
                if let statusModelArr = NSArray.yy_modelArray(with: WBStatusModel.self, json: statusArr) as? [WBStatusModel] {
//                    print(statusModelArr)
                    //将模型数据回传给调用者
                    callBack(statusModelArr)
                } else {
                    callBack(nil)
                }
            }
        }) { (_, error) in
            callBack(nil)
        }
    }
}
